import React, { Component } from 'react';

export default class App extends Component {
  constructor(props) {
    super(props);

    this.state = {
      counter: 0,
      message: 'Hello React！！！'
    }
  }

  render() {
    console.log("App render函数被调用");
    return (
      <div>
        <h2>当前计数: {this.state.counter}</h2>
        <button onClick={e => this.increment()}>+1</button>
        <hr />
        <button onClick={e => this.changeText()}>改变文本</button>
      </div>
    )
  }

    
  //2.使用这个生命周期函数 
  //接受两个参数 最新的props和最新的state
  //返回 true是更新调用render函数  false不更新
  shouldComponentUpdate(nextProps, nextState) {
    if(this.state.counter !== nextState.counter) {
      return true;
    }

    return false;
  }

  increment() {
    this.setState({
      counter: this.state.counter + 1
    })
  }

  // 1.改变数据 但单页面并没有依赖、使用这个数据 我们是不希望render被调用的
  changeText() {
    this.setState({
      message: '你好啊，React！！！'
    })
  }
}
